package org.jsola.hr.entity;

import lombok.Data;
import lombok.EqualsAndHashCode;
import org.jsola.core.entity.BaseDeleteDO;
import org.jsola.core.entity.Key;

import java.util.Date;
import javax.persistence.Table;

/**
 * @author zhr
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Table(name = "hr_emp_changes")
@Key(UUID = true)
public class EmpChangesDO extends BaseDeleteDO<String> {

    private static final long serialVersionUID = 1L;

    /**
     * 员工ID
     */
    private String empId;
    /**
     * 审批流程id
     */
    private String approFlowId;
    /**
     * 用户的审批流程id
     */
    private String userApproFlowId;
    /**
     * 员工变动类型（10：转正式，20：转正，30：调岗，40：离职）
     */
    private Integer changeType;
    /**
     * 原工号
     */
    private String preCode;
    /**
     * 新工号
     */
    private String currentCode;
    /**
     * 转正式时间
     */
    private Date formallyDate;
    /**
     * 试用期转正时间
     */
    private Date probationDate;
    /**
     * 转正时间
     */
    private Date regularDate;
    /**
     * 转正评价
     */
    private String regularEvaluation;
    /**
     * 转正附件
     */
    private String regularAttacment;
    /**
     * 调岗时间
     */
    private Date adjustmentDate;
    /**
     * 调岗原因
     */
    private String adjustmentReason;
    /**
     * 调岗附件
     */
    private String adjustmentAttachment;
    /**
     * 原部门
     */
    private String preDep;
    /**
     * 原岗位
     */
    private String prePosition;
    /**
     * 原职级
     */
    private Integer preLevel;
    /**
     * 原直属主管
     */
    private String preSupervisor;
    /**
     * 原管理形式（0：总部，1：分城市，2：其他）
     */
    private Integer preManagerForm;
    /**
     * 原工作城市
     */
    private String preWorkCityId;
    /**
     * 变更部门
     */
    private String currentDep;
    /**
     * 公司id
     */
    private String companyId;
    /**
     * 变更岗位
     */
    private String currentPosition;
    /**
     * 变更职级
     */
    private Integer currentLevel;
    /**
     * 变更直属主管
     */
    private String currentSupervisor;
    /**
     * 变更管理形式（0：总部，1：分城市，2：其他）
     */
    private Integer currentManagerForm;
    /**
     * 变更工作城市
     */
    private String currentWorkCityId;
    /**
     * 离职类型（1：主动离职，2：被动离职，3：退休）
     */
    private Integer quitType;
    /**
     * 离职时间
     */
    private Date quitDate;
    /**
     * 预计离职时间
     */
    private Date preQuitDate;
    /**
     * 办理离职时间
     */
    private Date handleQuitDate;
    /**
     * 个人主因（1：个人身体健康因素，2：家庭原因，3：交通不便、离住处远，4：回校深造，5：找到更好的企业工作，6：实习生返校，7：自己经营生意，8：转换行业，9：其他）
     */
    private Integer personalReason;
    /**
     * 公司主因（1：工作量太大，压力大，2：工资低，3：福利，4：与领导关系不和谐，5：无晋升机会，6：不满意公司策略和措施，7：同事关系不融洽，8：获取工作必须的资料信息或支持困难，9：工作时间，10：工作意见不受重视，11：工作目标/要求不明确，12：其他）
     */
    private Integer companyReason;
    /**
     * 离职原因
     */
    private String quitReason;
    /**
     * 离职备注信息
     */
    private String quitRemarks;
    /**
     * 申请离职原因
     */
    private String applyQuitReason;
    /**
     * 补偿金
     */
    private Integer compensation;
    /**
     * 代通知金
     */
    private Integer paymentLieuNotice;
    /**
     * 社保减员月
     */
    private Date ssAttritionMonth;
    /**
     * 公积金减员月
     */
    private Date pfAttritionMonth;
    /**
     * 剩余年假（天）
     */
    private Integer surplusYearHoliday;
    /**
     * 剩余调休（天）
     */
    private Integer surplusBreakOff;
    /**
     * 直属下属数量
     */
    private Integer directlyUnderNumber;
    /**
     * 状态(0:初始;1:通过;2:拒绝)
     */
    private Integer changeStatus;



}

